1. Field of the Invention
The present invention relates to peer-to-peer (P2P) computer communication, and specifically to a method by which computers can find and identify each other in the Internet, even when their Internet Protocol (IP) address is reassigned at random by a third-party.
2. Description of the Related Art
Computers connected to the Internet using broadband connections usually do this via three primary types of gateways; a cable modem, a DSL modem, or a Local Area Network (LAN) [be it wired or wireless]. The function of the Internet gateway is to become the residence of a unique Internet Protocol (IP) address. This IP address is represented as a four group numerical address (in the format W.X.Y.Z where each letter represents a binary value between 0 and 255), that uniquely identifies each gateway to every other computer in the Internet.
Most users of broadband Internet have contracts that specify that their IP address may be dynamically altered by their Internet Service Provider (ISP). That is, their ISP (be it the phone or cable company, or another supplier) reserves the right to arbitrarily re-assign the IP Address for their gateway. This means that the device's unique address (and hence how it is known to other computers out in the Internet) is subject to change at the whim of the ISP. By changing the IP address, automated peer-to-peer (P2P) connections between machines becomes very difficult (since the connecting machines identities are suddenly in doubt). Gray et al., U.S. Pat. No. 6,094,676 teaches how to implement a P2P link.
The ISPs do this because they want assurance that users making their computers into web servers pay more than users who simply web-browse, two applications that require very different amounts of bandwidth. In the early days of the Internet, when most users dialed in at very slow speeds, there were no risks of any of them using these dial-up connections to make their computers into web-servers. However, as the connections increased in speeds, the temptation was there to convert home computers into web-servers. In fact, when early cable modems used static IP addresses, with the consequence that many early adopters took advantage of these to make their home computers into web-servers. To limit this perceived mis-use of their service, broadband ISP contracts specify that IP addresses in the cable modem may not be converted to static IP's, and most recently have begun forcing changes on internet gateway IP addresses during lulls in use.
Because ISP's change the IP address, it becomes difficult for Internet users to have a file reside in their computer (or connect a web-camera) and automatically transfer this information to others (the typical function of a web-server). Borella et al., U.S. Pat. No. 6,269,099 teaches a method to do this in a P2P environment, but this has limited viability. Given these limitations, user's typically share files by attaching them to e-mails. However, in order to limit the use of their bandwidth, most e-mail providers limit the size of attachments to files no larger than 10 or 20 Mbytes. With the wide availability of digital media in which to store home movies, many users are hard pressed to find ways in which to electronically share home movie files that are typically in the 10 MB per minute range.
Today, the primary alternative left to users wanting to share large files is the use of large capacity/large transfer web-site. Unfortunately, services such as these are geared towards commercial users (with round-the-clock availability and expected large transfers), hence they are expensive and complicated. Finally, they are by definition cumbersome. Using a web-server to transfer a large file requires the file to be transferred and stored from the originator's computer to the web-server (essentially a computer that has a static IP address), where it resides until requested by someone for download. If the originator decides to make any changes to the file, he/she must first re-download it (assuming a local copy was not kept), then re-upload it.
What is required, is a method that would allow someone to identify a file within their computer (or a web-camera link) and communicate to someone else via a brief message the location of this device, then make it available so that it may be located by others in a secure fashion.